#! /usr/bin/env python3
# encoding: utf-8
"""
@file: manager.py
@author: www.xcooo.cn
@Mail: 602006050@qq.com
"""
import logging

from flask import current_app
from flask import session
from flask_script import  Manager
from flask_migrate import Migrate, MigrateCommand

from info import create_app,db,models

# 通过指定配置的名字创建对应配置的app
# create_app 类似于工厂方法
from info.models import User

app = create_app('development')

# 创建终端命令的对象
manager = Manager(app)
# 迁移类命令将db与app关联
Migrate(app,db)
# manager是终端命令的实例，这条语句在flask-Script中添加一个db命令
manager.add_command('db',MigrateCommand)


@manager.option('-n', '-name', dest='name')
@manager.option('-p', '-password', dest='password')
def createsuperuser(name, password):
    """创建管理员用户"""
    if not all([name, password]):
        print('参数不足')
        return

    user = User()
    user.mobile = name
    user.nick_name = name
    user.password = password
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
        print("创建成功")
    except Exception as e:
        print(e)
        db.session.rollback()

if __name__ == '__main__':
    # print(app.url_map)
    manager.run()